package com.lcredu.mapper;

import com.lcredu.entity.Monster;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author 黎长容
 * @date 2025-07-27 17:34
 */
public interface MonsterMapper {
    //如果age>0就查询相对应的条件,否则就查全部,这个@age会将里面的值传给xml中的sql语句
    public List<Monster> selectMonsterById(@Param("age") Integer age);

    //测试where标签,如果id<0就不拼接id,如果name=空就不拼接name
    public List<Monster> selectMonsterByIdAndName(Monster monster);

    //测试choose-when 标签 : 如果有name就按name查询;如果没有name,有id就按id查询;如果都没有就按照薪水> 30000查询
    public List<Monster> selectMonsterByIdAndName_choose(Map<String, Object> map);

    //测试foreach 传入一个map包含集合ids,如果匹配上了就返回一个list
    public List<Monster> selectMonstersByForeach(Map<String, Object> map);

    //trim 标签的使用
    public List<Monster> findMonsterByNameOrId_Trim(Map<String, Object> map);

    //测试 Set 标签
    public void updateMonster_set(Monster monster);
}
